package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目费用业务对象 kfn_project_cost
 *
 * @author Panda
 * @date 2023-12-21
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class KfnProjectCostBo extends BaseEntity {

    /**
     * 项目费用id
     */
    @NotNull(message = "项目费用id不能为空", groups = { EditGroup.class })
    private Long projectCostId;

    /**
     * 收入/支出
     */
    @NotBlank(message = "收入/支出不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectCostType;

    /**
     * 费用类别（吃饭，送礼物）
     */
    @NotBlank(message = "费用类别（吃饭，送礼物）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectCostCategory;

    /**
     * 谁支出/从哪收入
     */
    @NotBlank(message = "谁支出/从哪收入不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectCostFromUser;

    /**
     * 费用时间
     */
    @NotNull(message = "费用时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date projectCostDate;

    /**
     * 费用金额
     */
    @NotNull(message = "费用金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal projectCostAmount;

    /**
     * 支出给谁/收入到哪
     */
    @NotBlank(message = "支出给谁/收入到哪不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectCostToUser;

    /**
     * 费用发生的详情
     */
    @NotBlank(message = "费用发生的详情不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectCostContent;

    /**
     * 关联的项目id
     */
    @NotBlank(message = "关联的项目id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectId;

    /**
     * 关联的工单号（如果有）
     */
    @NotBlank(message = "关联的工单号（如果有）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workOrderId;

    /**
     * 备注
     */
    private String remark;


}
